Skip to content

Add new features to ensure we do not lose functionality from what was… - #345

Open
SharonStrats wants to merge 6 commits into
stagingfrom
feat/acl-match-legacy
Open

SharonStrats wants to merge 6 commits into
stagingfrom
feat/acl-match-legacy

Conversation

@SharonStrats

@SharonStrats SharonStrats commented Oct 18, 2026 •

Copy link
Copy Markdown
Contributor

The reason for this work is that in testing, a couple of things were discovered.

  1. The Dokeili planners are resource-oriented and do not fully express SolidOS container semantics. In particular, acl:default is not copied over from the inherited access when granting access to a container.
  2. This discovery also led to the realization of the complexity of the container access control and that the current design missed some functionality. One of the biggest is that for a container there are actually 3 "types" of access that can be granted because of the acl:default. Access to a container can be granted for the container itself and it's contents by adding accessTo as well as default. You can also set access to only apply to the container itself, as well you can apply access to the contents by themselves.
  3. There was another discovery that we had missed the ability to reset the access for a resource back to use it's default, effectively removing the .acl for the particular resource in question.
  4. The current sharing pane also has safeguards to prevent deletion of the storage resource permissions so this was added here.

The following is a list of things that were added to support the missing features in the access control dialog:

  • Folder-only access.
  • Folder-and-contents access.
  • Contents-only access.
  • Inherited ACLs.
  • Resetting a resource back to inherited defaults.
  • Protected storage-resource safeguards.
  • Explicit error handling for invalid or unsafe ACL operations.

Note: there is one thing still missing is that the current Sharing Pane also has one more role it's Owner (write locked), almost like a "Sharing Manager" so with this permission, which is ['Read', 'Control'] the user can change permissions, but not write to the resource.

@SharonStrats SharonStrats self-assigned this Oct 18, 2026
@SharonStrats SharonStrats added the enhancement New feature or request label Oct 18, 2026
@SharonStrats SharonStrats moved this to In progress in SolidOS NLNet UI Oct 18, 2026
… offered in the sharing Pane

Prompt: Many prompts to get this correct. This will most likely change a bit as well once we decide for sure if this is the correct approach

Co-authored-by: GPT-5.6 Luna <gpt-5.6-luna@openai.com>

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
@SharonStrats
SharonStrats force-pushed the feat/acl-match-legacy branch from cd425e0 to 1e8e448 Compare October 19, 2026 04:00
SharonStrats and others added 4 commits October 20, 2026 11:46
Prompt: Split shared direct authorizations when downgrading or revoking one subject.

Co-authored-by: GPT-5.6 Luna <gpt-5.6-luna@openai.com>
Prompt: Make sure to copy over any conditions even though this is not currently supported in solidos we don't want to lose this information if a user has it. Also make authorization ids consistent.

Co-authored-by: GPT-5.6 Luna <gpt-5.6-luna@openai.com>
Prompt: Please normalize the role handling and add the ability to have a owner (write locked)
which is read and control.

Co-authored-by: GPT-5.6 Luna <gpt-5.6-luna@openai.com>
@SharonStrats
SharonStrats requested a balanced review from Copilot October 20, 2026 09:03
@SharonStrats SharonStrats moved this from In progress to In review in SolidOS NLNet UI Oct 20, 2026

Copilot AI left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

🟡 Changes recommended

ACL rewrites can broaden restricted access, retain revoked permissions, remove unrelated grants, and bypass controller safeguards.

8 open issues
What changed in this PR

Extends SolidOS access-control logic to support container sharing scopes and restore missing sharing-pane functionality.

Changes:

  • Adds scoped container grants, inheritance handling, and ACL reset operations.
  • Adds storage safeguards, scope analysis, and write-locked owner mapping.
  • Expands tests and updates the package version.
File Description
test/​resourceLogic.test.ts Extends ACL API mocks.
test/​publicAclApi.test.ts Checks new public exports and types.
test/​aclLogic.test.ts Tests scoped grants, inheritance, and safeguards.
src/​types.ts Extends the ACL interface.
src/​index.ts Exports scope helpers and role definitions.
src/​acl/​aclLogic.ts Implements expanded ACL behavior.
package.json Bumps the package version.
package-lock.json Synchronizes version metadata.

Review effort: Balanced

Comment thread src/acl/aclLogic.ts Outdated
Comment thread src/acl/aclLogic.ts Outdated
Comment thread src/acl/aclLogic.ts
Comment thread src/acl/aclLogic.ts Outdated
Comment thread src/acl/aclLogic.ts
Comment thread src/acl/aclLogic.ts Outdated
Comment thread src/acl/aclLogic.ts
Comment thread src/acl/aclLogic.ts Outdated
Prompt: multiple to help resolve PR feedback

Co-authored-by: GPT-5.6 Luna <gpt-5.6-luna@openai.com>
@SharonStrats
SharonStrats marked this pull request as ready for review October 20, 2026 11:12
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

enhancement New feature or request

Projects

Status: In review

Development

Successfully merging this pull request may close these issues.

3 participants